bat & cmd 命令知识点整理(待更新) 您所在的位置:网站首页 cmd 获取当前路径 bat & cmd 命令知识点整理(待更新)

bat & cmd 命令知识点整理(待更新)

2023-09-06 12:11| 来源: 网络整理| 查看: 265

bat & cmd 命令知识点整理(待更新)

文章目录 bat & cmd 命令知识点整理(待更新)零、基础概念一、`bat` 基础命令二、`bat` 常见变量三、`bat`常见字符(含运算符)四、`cmd`文件夹管理五、`cmd`文件管理六、`cmd`网络命令七、`cmd`系统管理八、脚本案例

参考

bat 脚本基础知识、命令详解Windows批处理文件(.bat文件和.cmd文件)简单使用cmd指令,bat脚本【完美解析】windows批处理命令总结(超详细滴) 零、基础概念

【问】bat和cmd区别,参考cmd指令,bat脚本【完美解析】 Note:

共同点:

本质上没有区别(DOS命令行和CMD命令行都是用Windows终端命令打开),都是简单的文本编码方式,都可以用记事本创建、编辑和查看。

两者所用的命令行代码也是共用的,只是 cmd文件中允许使用的命令要比bat文件多。cmd文件只有在windows2000以上的系统中才能运行,而bat文件则没有这个限制。

从它们的文件描述中也可以看出以上的区别: cmd文件的描述是 windows NT(桌面操作系统)命令脚本 ,bat文件的描述是微软的MS-DOS(磁盘操作系统) 批处理文件(不要和计算机 主板内ROM芯片上的程序BIOS 弄混了)。

区别:

cmd是Win32命令,只能在32位系统中的命令行窗口中使用,仅仅是基于windows环境下的假DOS。(cmd中不能正常执行echo %~sdp0,但是运行bat批处理程序就可以,参考CMD获取当前目录路径)

bat是DOS命令(批处理命令),在任何dos环境下都可以使用。

【问】如何查看cmd命令 Note:

如果找不到help命令,参考cmd显示help不是内部或外部命令,也不是可运行的程序或批处理文件

help命令如下:

C:\Users\THINKPAD>help 有关某个命令的详细信息,请键入 HELP 命令名 ASSOC 显示或修改文件扩展名关联。 ATTRIB 显示或更改文件属性。 BREAK 设置或清除扩展式 CTRL+C 检查。 BCDEDIT 设置启动数据库中的属性以控制启动加载。 CACLS 显示或修改文件的访问控制列表(ACL)。 CALL 从另一个批处理程序调用这一个。 CD 显示当前目录的名称或将其更改。 CHCP 显示或设置活动代码页数。 CHDIR 显示当前目录的名称或将其更改。 CHKDSK 检查磁盘并显示状态报告。 CHKNTFS 显示或修改启动时间磁盘检查。 CLS 清除屏幕。 CMD 打开另一个 Windows 命令解释程序窗口。 COLOR 设置默认控制台前景和背景颜色。 COMP 比较两个或两套文件的内容。 COMPACT 显示或更改 NTFS 分区上文件的压缩。 CONVERT 将 FAT 卷转换成 NTFS。你不能转换 当前驱动器。 COPY 将至少一个文件复制到另一个位置。 DATE 显示或设置日期。 DEL 删除至少一个文件。 DIR 显示一个目录中的文件和子目录。 DISKPART 显示或配置磁盘分区属性。 DOSKEY 编辑命令行、撤回 Windows 命令并 创建宏。 DRIVERQUERY 显示当前设备驱动程序状态和属性。 ECHO 显示消息,或将命令回显打开或关闭。 ENDLOCAL 结束批文件中环境更改的本地化。 ERASE 删除一个或多个文件。 EXIT 退出 CMD.EXE 程序(命令解释程序)。 FC 比较两个文件或两个文件集并显示 它们之间的不同。 FIND 在一个或多个文件中搜索一个文本字符串。 FINDSTR 在多个文件中搜索字符串。 FOR 为一组文件中的每个文件运行一个指定的命令。 FORMAT 格式化磁盘,以便用于 Windows。 FSUTIL 显示或配置文件系统属性。 FTYPE 显示或修改在文件扩展名关联中使用的文件 类型。 GOTO 将 Windows 命令解释程序定向到批处理程序 中某个带标签的行。 GPRESULT 显示计算机或用户的组策略信息。 GRAFTABL 使 Windows 在图形模式下显示扩展 字符集。 HELP 提供 Windows 命令的帮助信息。 ICACLS 显示、修改、备份或还原文件和 目录的 ACL。 IF 在批处理程序中执行有条件的处理操作。 LABEL 创建、更改或删除磁盘的卷标。 MD 创建一个目录。 MKDIR 创建一个目录。 MKLINK 创建符号链接和硬链接 MODE 配置系统设备。 MORE 逐屏显示输出。 MOVE 将一个或多个文件从一个目录移动到另一个 目录。 OPENFILES 显示远程用户为了文件共享而打开的文件。 PATH 为可执行文件显示或设置搜索路径。 PAUSE 暂停批处理文件的处理并显示消息。 POPD 还原通过 PUSHD 保存的当前目录的上一个 值。 PRINT 打印一个文本文件。 PROMPT 更改 Windows 命令提示。 PUSHD 保存当前目录,然后对其进行更改。 RD 删除目录。 RECOVER 从损坏的或有缺陷的磁盘中恢复可读信息。 REM 记录批处理文件或 CONFIG.SYS 中的注释(批注)。 REN 重命名文件。 RENAME 重命名文件。 REPLACE 替换文件。 RMDIR 删除目录。 ROBOCOPY 复制文件和目录树的高级实用工具 SET 显示、设置或删除 Windows 环境变量。 SETLOCAL 开始本地化批处理文件中的环境更改。 SC 显示或配置服务(后台进程)。 SCHTASKS 安排在一台计算机上运行命令和程序。 SHIFT 调整批处理文件中可替换参数的位置。 SHUTDOWN 允许通过本地或远程方式正确关闭计算机。 SORT 对输入排序。 START 启动单独的窗口以运行指定的程序或命令。 SUBST 将路径与驱动器号关联。 SYSTEMINFO 显示计算机的特定属性和配置。 TASKLIST 显示包括服务在内的所有当前运行的任务。 TASKKILL 中止或停止正在运行的进程或应用程序。 TIME 显示或设置系统时间。 TITLE 设置 CMD.EXE 会话的窗口标题。 TREE 以图形方式显示驱动程序或路径的目录 结构。 TYPE 显示文本文件的内容。 VER 显示 Windows 的版本。 VERIFY 告诉 Windows 是否进行验证,以确保文件 正确写入磁盘。 VOL 显示磁盘卷标和序列号。 XCOPY 复制文件和目录树。 WMIC 在交互式命令 shell 中显示 WMI 信息。 有关工具的详细信息,请参阅联机帮助中的命令行参考。 一、bat 基础命令

参考bat 脚本基础知识、命令详解,Windows批处理文件(.bat文件和.cmd文件)简单使用,cmd指令,bat脚本【完美解析】

【问】如何关闭打印文件内容?(@和echo off设置命令内容不被打印)

Note:

@echo off:通常我们将这条指令写在我们批处理文件的第一行,因为有了这条指令之后,当我们在运行.bat的时候,就不会将文件里面的内容打印出来了,如果没有这句话,会先去将文件里面的内容打印在屏幕上。

echo off:这条指令之后的内容不会被打印,但是这个指令会被打印

@ :某一条指令不想被打印,可以在前面加上@

【问】如何设置变量值,打印变量和打印空行?(set设置值,echo打印值)

Note:

设置变量值:注意等号左边不能有空格,等号右边的空格会被当做字符串的一部分;

set a=1 set wang=wang

在控制台打印变量:需要在变量的前后带上%,然后使用echo命令回显变量;

echo %a% echo %wang%

打印空行:echo.(.必须紧跟在echo命令的后面),.也可以被,:,;,或/等任一的符号代替,实现回车空行打印。

echo. echo: echo;

【问】如何注释指令?(REM和::)

Note:

rem set a=1:注释指令打印在控制台上

::set b=2:注释指令不会打印在控制台

【问】如何暂停和继续执行命令?(pause暂停,方便检查控制台输出;按任意键可以继续执行该文件)

Note:

希望在暂停时,不要在屏幕上显示“请按任意键以继续”,而是显示自己的语句:

echo 其他提示语 & pause > nul

【问】如何改变cmd窗口名字?(title 新标题名字_wang03)

【问】如何启动一个单独的窗口来运行指定的程序或命令?(start 程序名 程序参数)

Note:

查看start相关参数:

> help start 启动一个单独的窗口以运行指定的程序或命令。 START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED] [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL] [/NODE ] [/AFFINITY ] [/WAIT] [/B] [command/program] [parameters] "title" 在窗口标题栏中显示的标题。 path 启动目录。 B 启动应用程序,但不创建新窗口。 应用程序已忽略 ^C 处理。除非应用程序 启用 ^C 处理,否则 ^Break 是唯一可以中断 该应用程序的方式。 I 新的环境将是传递 给 cmd.exe 的原始环境,而不是当前环境。 MIN 以最小化方式启动窗口。 MAX 以最大化方式启动窗口。 SEPARATE 在单独的内存空间中启动 16 位 Windows 程序。 SHARED 在共享内存空间中启动 16 位 Windows 程序。 LOW 在 IDLE 优先级类中启动应用程序。 NORMAL 在 NORMAL 优先级类中启动应用程序。 HIGH 在 HIGH 优先级类中启动应用程序。 REALTIME 在 REALTIME 优先级类中启动应用程序。 ABOVENORMAL 在 ABOVENORMAL 优先级类中启动应用程序。 BELOWNORMAL 在 BELOWNORMAL 优先级类中启动应用程序。 NODE 将首选非一致性内存结构(NUMA)节点指定为 十进制整数。 AFFINITY 将处理器关联掩码指定为十六进制数字。 注意: 在 64 位平台上不支持 SEPARATE 和 SHARED 选项。 通过指定 /NODE,可按照利用 NUMA 系统中的内存区域的方式 创建进程。例如,可以创建两个完全 通过共享内存互相通信的进程以共享相同的首选 NUMA 节点, 从而最大限度地减少内存延迟。只要有可能, 它们就会分配来自相同 NUMA 节点的 内存,并且会在指定节点之外的处理器上自由运行。 start /NODE 1 application1.exe start /NODE 1 application2.exe 这两个进程可被进一步限制在相同 NUMA 节点内的指定处理器 上运行。在以下示例中,application1 在 节点的两个低位处理器上运行,而 application2 在该节点的其后两个处理器上运行。该示例假定指定节点至少具有四个逻辑处理器。请注意,节点号可更改为该计算机的任何有效节点号, 而无需更改关联掩码。 start /NODE 1 /AFFINITY 0x3 application1.exe 启动 /NODE 1 /AFFINITY 0xc application2.exe 如果命令扩展被启用,通过命令行或 START 命令的外部命令 调用会如下改变: 将文件名作为命令键入,非可执行文件可以通过文件关联调用。 (例如,WORD.DOC 会调用跟 .DOC 文件扩展名关联的应用程序)。 关于如何从命令脚本内部创建这些关联,请参阅 ASSOC 和 FTYPE 命令。 执行的应用程序是 32 位 GUI 应用程序时,CMD.EXE 不等应用 程序终止就返回命令提示符。如果在命令脚本内执行,该新行为 则不会发生。 如果执行的命令行的第一个符号是不带扩展名或路径修饰符的

常用的start命令为:start 程序名 程序参数用来调用批处理文件的同级目录下的程序。

start iexplore http:\www.baidu.com \使用IE浏览器打开百度 start chrome http:\www.baidu.com \使用chrome浏览器打开百度 start wps \打开wps文档 start wps hello.doc \使用wps打开hello.doc文档

【问】如何在某一批处理程序中调用另外一个batch文件?(call c:\code\temp.bat )

Note:

main.bat:

echo my name is main.bat call temp.bat pause

temp.bat:

echo my name is temp.bat

call main.bat:

D:\programSoftware\Java\java1.8\test>call main.bat D:\programSoftware\Java\java1.8\test>echo my name is main.bat my name is main.bat D:\programSoftware\Java\java1.8\test>call temp.bat D:\programSoftware\Java\java1.8\test>echo my name is temp.bat my name is temp.bat D:\programSoftware\Java\java1.8\test>pause 请按任意键继续. . . 二、bat 常见变量

参考cmd指令,bat脚本【完美解析】,.bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别,CMD获取当前目录路径

【问】%0表示什么?(批处理文件名,%1表示批处理程序传入的第一个参数)

Note:

在批处理程序中%0表示这个批处理程序的文件名,%1表示调用这个批处理时传入的第1个参数,%2表示调用这个批处理时传入的第2个参数,最大可以到%9。

举个例子:

temp.bat:

@echo off echo param0=%0 echo param0=%1 echo param0=%2

输出:

C:\Users\Administrator\Downloads>temp.bat “hello world” param0=temp.bat param1=“hello world” param2=

【问】%i表示什么?(在cmd命令行的for语句中使用)

Note:

for循环在cmd命令行中的固定用法for %i in (set) do (...),循环变量格式为%i

【问】%%i表示什么?(在bat文件内的for语句中使用)

Note:

for循环在bat处理程序中的固定用法for %%i in (set) do (...),循环变量格式为%%i

【问】如何获取当前文件夹路径?(%CD%)

【问】如何获取当前日期?(%DATE%)

【问】如何获取当前时间?(%TIME%)

【问】如何产生随机数?(%RANDOM%)

【问】如何设置变量的延迟扩展?(setlocal enabledelayedexpansion)

Note:

自定义变量参考上一小节(set var / echo %var%)

没有延迟变量扩展测试:

@echo off set var1=110 set var1=120&echo %var1% pause --- >temp.bat 110 请按任意键继续. . .

延迟变量扩展测试:setlocal enabledelayedexpansion

@echo off set var1=110 setlocal enabledelayedexpansion set var1=120&echo %var1% pause --- >temp.bat 120 请按任意键继续. . .

【问】在bat中有哪些文件路径变量可以使用?(以下变量只能在bat文件中使用,不能在cmd中使用)

Note:

temp.bat:

::获取当前盘符 echo "%~d0" ::获取当前盘符和路径 echo "%~dp0" :: 获取当前批处理全路径 echo "%~f0" :: 当前盘符和路径的短文件名格式: echo "%~sdp0" :: 当前CMD默认目录: echo "%cd%"

也可以是如下temp1.bat:

::获取当前盘符 echo %~d0 ::获取当前盘符和路径 echo %~dp0" :: 获取当前批处理全路径 echo %~f0 :: 当前盘符和路径的短文件名格式: echo %~sdp0 :: 当前CMD默认目录: echo %cd% pause

在cmd上执行bat文件,控制台输出如下:

D:\programSoftware\ffmpeg\ffmpeg-4.4.1-essentials_build>echo "D:" "D:" D:\programSoftware\ffmpeg\ffmpeg-4.4.1-essentials_build>echo "D:\programSoftware\ffmpeg\ffmpeg-4.4.1-essentials_build\" "D:\programSoftware\ffmpeg\ffmpeg-4.4.1-essentials_build\" D:\programSoftware\ffmpeg\ffmpeg-4.4.1-essentials_build>echo "D:\programSoftware\ffmpeg\ffmpeg-4.4.1-essentials_build\test.bat" "D:\programSoftware\ffmpeg\ffmpeg-4.4.1-essentials_build\test.bat" D:\programSoftware\ffmpeg\ffmpeg-4.4.1-essentials_build>echo "D:\PROGRA~1\ffmpeg\FFMPEG~1.1-E\" "D:\PROGRA~1\ffmpeg\FFMPEG~1.1-E\" D:\programSoftware\ffmpeg\ffmpeg-4.4.1-essentials_build>echo D:\programSoftware\ffmpeg\ffmpeg-4.4.1-essentials_build D:\programSoftware\ffmpeg\ffmpeg-4.4.1-essentials_build D:\programSoftware\ffmpeg\ffmpeg-4.4.1-essentials_build>pause 请按任意键继续. . . 三、bat常见字符(含运算符) 标识符含义+命令文件连接符*, ?文件通配符“”字符串界定符^转义符,其后面的特殊字符按原样输出|命令管道符>>文件重定向符@命令行回显屏蔽符/参数开关引导符:批处理标签引导符%批处理变量引导符

组合命令: & 用法: 第一条命令 & 第二条命令 [& 第三条命令…] 同时执行多条命令,而不管命令是否执行成功。

逻辑与:&& 用法: 第一条命令 && 第二条命令 [&& 第三条命令…] 同时执行多条命令,当碰到执行出错的命令将不执行后面的命令,如果一直没有出错则一直执行完所以命令。

逻辑或:|| 用法: 第一条命令 || 第二条命令 [|| 第三条命令…] 同时执行多条命令,当碰到执行正确的命令将不执行后面的命令,如果一直没有出现正确执行的命令则一直执行完所以命令。

管道命令:| 用法: 第一条命令 | 第二条命令 [| 第三条命令…] 将第一条命令的结果作为第二条命令的参数来使用

输出重定向命令:> , >> 将一条命令或某个程序输出结果重定向到特定文件中。> 与 >> 的区别在于: > 会清除原有文件中的内容后写入指定文件, >> 只会追加内容到指定文件中,而不会改变其中的内容。

&,



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有